/*
@功能：购物车页面js
@作者：diamondwang
@时间：2013年11月14日
*/
$(function(){

	// 验证信息标志
	var flag = true;

	// 异步请求标志
	var asyFlag = true;

	//收货人修改
	$("#address_modify").click(function(){
		$(this).hide();
		$(".address_info").hide();
		$(".address_select").show();
		$(".select-address-btn").show();
	});

	// 点击使用新地址按钮
	$(".new_address").click(function(){
		$('.select-address-btn').hide();
		$(".new_address_form").show();
		$(this).parent().addClass("cur").siblings().removeClass("cur");

	}).parent().siblings().find("input").click(function(){
		$('.select-address-btn').show();
		$(".new_address_form").hide();
		$(this).parent().addClass("cur").siblings().removeClass("cur");
	});

	// 点击使用选中地址按钮
	$('.select-address-btn').click(function() {

		var id = $('input[name=address]:checked').val();

		// 检测是否存在异步请求
		if( !asyFlag ){
			return false;
		}
		asyFlag = false;

		$.get(getAddressUrl, {id:id,only:true}, function(data) {
			
			if(data['status']) {

				var html = '<p>'+data.address.consignee+'  '+data.address.mobile+' '+data.address.tel+'</p>\
						    <p>'+data.address.province+' '+data.address.city+' '+data.address.district+' '+data.address.address+' 邮编：'+data.address.zipcode+'</p';

				$('input[name=shr_consignee]').val(data.address.consignee);
				$('input[name=shr_email]').val(data.address.email);
				$('input[name=shr_mobile]').val(data.address.mobile);
				$('input[name=shr_tel]').val(data.address.tel);
				$('input[name=shr_province]').val(data.address.province);
				$('input[name=shr_city]').val(data.address.city);
				$('input[name=shr_district]').val(data.address.district);
				$('input[name=shr_zipcode]').val(data.address.zipcode);
				$('input[name=shr_address]').val(data.address.address);

				$('.new_address_form').hide();
				$('.address_select').hide();
				$('#address_modify').show();
				$('.address_info').html(html).show();
				$('input[name=address_id]').val(id);

			}else {
				alert(data['msg']);
			}

			asyFlag = true;
			
		},'json');



	});

	// 添加收货人信息验证
	//首先给必须验证的元素一个error类，用于提交时的验证
	$(".must").addClass('error');

	//获取焦点事件
	$(".must").focus(function(){
		$(this).next('span').remove();//移除提示信息
		$(this).css('border-color','#ddd');//还原边框样式
	});
	//失去焦点事件
	$(".must").blur(function(){
		var value=$(this).val();//获取表单项的值

		//为空时给出提示
		if(value==''){
			$(this).css('border-color','red').addClass('error');//给input红色并添加error类
			$(this).after('<span style="color:red;position:relative;left:11px">不能为空<span>');	
		}else{
			$(this).removeClass('error');//移除error类
		}
	});

	//手机验证
	$('input[name=mobile]').blur(function(){
		var value=$(this).val();//获取表单项的值
		if(value=='') return;//如果为空就进行上面编写的失去焦点事件即可，不能测试下面的格式

		//检测手机格式是否正确
		if(!(/^1[34578]\d{9}$/.test(value))){
			$(this).css('border-color','red').addClass('error');//如果有错，就给input红色并添加error类
			$(this).parents('tr').after('<span style="color:red;position:relative;left:118px">手机格式书写错误<span>');//给出提示信息
		}else{
			$(this).removeClass('error');//移除error类
		}
	});

	// 异步获取子城市
	$('.user-add').live('change',function(){

		//获取城市id
		var cid=$(this).val();

		//如果没有选择城市就直接返回
		if(cid=='') return false;

		//隐藏后面的select
		$(this).nextAll('select').hide();
		var that=this;

		// 检测是否存在异步请求
		if( !asyFlag ){
			return false;
		}
		asyFlag = false;

		//异步获取子城市
		$.get(getChildCityUrl,{id:cid},function(data) {
			
			//如果有返回状态为真
			if(data.status){

				//拼凑option字符串
				var str='<option value="">请选择</option>';
				for (var i in data.city) {
					str+='<option value="'+data.city[i].cid+'">'+data.city[i].city_name+'</option>';
				}

				if(data.city.length==1){
					$(that).next('select').html('').append(str).val(data.city[0].cid).show(); 
					that=$(that).next('select');
					$.get(getChildCityUrl,{id:data.city[0].cid},arguments.callee,'json');
					return ;
				}

				//将拼凑好的option字符串插入到select内
				$(that).next('select').html('').append(str).show(); 

				// 此次异步完成，允许再次异步请求
				asyFlag = true;
			}
		},'json');
	});

	// 异步添加收货人地址
	$('.addAdressBtn').click(function() {

		// 默认都是正确的
		flag = true

		//循环判断必须验证项是否有error类
		$('.must').each(function() {

			if($(this).hasClass('error')){

				$(this).trigger('focus');//触发获得焦点事件，清除提示信息
				$(this).trigger('blur');//出入失去焦点事件，判断是否正确

				// 如果有一个信息有error类就是错的
				flag=false;
			}

		});

		//判断是否进行ajax
		if(flag){

			// 获取提交信息
			var oUl = $('.new_address_form');
			var info = {};
			info.consignee = oUl.find('input[name=consignee]').val();
			info.mobile = oUl.find('input[name=mobile]').val();
			info.tel = oUl.find('input[name=tel]').val();
			info.email = oUl.find('input[name=email]').val();
			info.zipcode = oUl.find('input[name=zipcode]').val();
			info.province = oUl.find('select[name=province]').val();
			info.city = oUl.find('select[name=city]').val();
			info.district = oUl.find('select[name=district]').val();
			info.address = oUl.find('input[name=address]').val();

			var province = oUl.find('select[name=province]').find('option:checked').text();
			var city = oUl.find('select[name=city]').find('option:checked').text();
			var district = oUl.find('select[name=district]').find('option:checked').text();

			// 检测是否存在异步请求
			if( !asyFlag ){
				return false;
			}
			asyFlag = false;

			// 异步添加地址
			$.post(addAdressUrl, info, function(data) {
				
				if( data['status'] ) {

					var html = '<li class="cur">\
								   <input type="radio" value="'+data.id+'" name="address" checked="checked">'+info.consignee+' '+province+' '+city+' '+district+' '+info.address+' '+info.mobile+' '+info.tel+' 邮编：'+info.zipcode+'\
							   </li>';

					$('.new_address').parent('li').removeClass('cur').before(html);
					$('.new_address_form').hide();
					$('.address_select').hide();

					$("#address_modify").text('[修改]').show();

					html = '<p>'+info.consignee+'  '+info.mobile+' '+info.tel+'</p>\
						    <p>'+province+' '+city+' '+district+' '+info.address+' 邮编：'+info.zipcode+'</p';

					$('input[name=shr_consignee]').val(info.consignee);
					$('input[name=shr_email]').val(info.email);
					$('input[name=shr_mobile]').val(info.mobile);
					$('input[name=shr_tel]').val(info.tel);
					$('input[name=shr_province]').val(province);
					$('input[name=shr_city]').val(city);
					$('input[name=shr_district]').val(district);
					$('input[name=shr_zipcode]').val(info.zipcode);
					$('input[name=shr_address]').val(info.address);

					$('.address_info').html(html).show();
					$('input[name=address_id]').val( data.id );


				}else {
					alert(data['msg']);
				}

				// 此次异步完成，允许再次异步请求
				asyFlag = true;

			},'json');
			

		}else{
			
			return false;
		}
		
	});

	//送货方式修改
	$("#delivery_modify").click(function(){
		$(this).hide();
		$(".delivery_info").hide();
		$(".delivery_select").show();
	})

	$("input[name=delivery]").click(function(){
		$(this).parent().parent().addClass("cur").siblings().removeClass("cur");
	});

	//支付方式修改
	$("#pay_modify").click(function(){
		$(this).hide();
		$(".pay_info").hide();
		$(".pay_select").show();
	})

	$("input[name=pay]").click(function(){
		$(this).parent().parent().addClass("cur").siblings().removeClass("cur");
	});

	//发票信息修改
	$("#receipt_modify").click(function(){
		$(this).hide();
		$(".receipt_info").hide();
		$(".receipt_select").show();
	})

	$(".company").click(function(){
		$(".company_input").removeAttr("disabled");
	});

	$(".personal").click(function(){
		$(".company_input").attr("disabled","disabled");
	});

});